package View;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
 * Panel w którym znajdują się kontroli do wyszukiwania plików na zdalnym dysku.
 * @param info - informacja o wyszukiwaniu.
 * @param name - przechowuje nazwę pliku do wyszukiwania.
 * @param ok - guzik do potwierdzenia.
 * @param czysc - guzik do wyczyszczenia pola name.
 * @param next - guzik do wyszukania następnego resultatu.
 * @param view - referencja na widok.
 * @param tree - refencja na komponent drzewa plików. 
 */
public class Searching extends JPanel {
    private JLabel info;
    private JTextField name;
    private JButton ok;
    private JButton czysc;
    private JButton next;
    private final View view;
    private final FilesTree tree; 
    
    Searching(final View view, final FilesTree tree) {
        this.view = view;
        this.tree = tree;
             
        info = new JLabel("Nazwa: ");
        info.setPreferredSize(new Dimension(45,30));
        name = new JTextField("");
        name.setPreferredSize(new Dimension(210,30));
        ok = new JButton("Znajdź");
        ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
                if(name.getText().equals("")) {
                    view.showError("Nazwa nie może byc pustym ciągiem!");
                }
                else if(view.isZalogowany() == false) {
                    view.showError("Użytkownik nie jest zalogowany.");
                }
                else {
                    tree.find(name.getText());
                }
                    
            }
        });
        czysc = new JButton("Wyczyść");
        czysc.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                name.setText("");
            }
        });
        next = new JButton("Następny");
        next.setToolTipText("Aby rozpoczac wyszukiwanie od poczatku, kliknij znajdź.");
        next.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(name.getText().equals("")) {
                    view.showError("Nazwa nie może być pustym ciągiem!");
                }
                else if(view.isZalogowany() == false) {
                    view.showError("Użytkownik nie jest zalogowany.");
                }
                else {
                    tree.findNext(name.getText());
                }
            }
        });
        this.add(info);
        this.add(name);
        this.add(ok);
        this.add(czysc);
        this.add(next);

    }
}
